package com.h3c.ptability.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.h3c.ptability.dto.PtManagementAllDTO;
import com.h3c.ptability.entity.PtDept;
import com.h3c.ptability.entity.PtManagementAll;
import com.h3c.ptability.support.PageQuery;
import com.h3c.ptability.vo.PtManagementAllVO;

import java.util.List;

/**
 * IPtManagementAllService接口
 *
 * @author h24002
 * @date 2023-05-05
 */
public interface IPtManagementAllService {
    /**
     * 根据条件查询集合--分页
     *
     * @param pageQuery 查询条件
     * @return 主管信息集合--分页
     */
    IPage<PtManagementAllVO> selectPage(PageQuery<PtManagementAllDTO> pageQuery);

    /**
     * 添加数据
     *
     * @param dto 条件
     */
    void insert(PtManagementAllDTO dto);

    /**
     * 更新数据
     *
     * @param dto 条件
     */
    void update(PtManagementAllDTO dto);

    /**
     * 同步数据
     *
     * @author h24002
     * @date 2023-05-05
     */
    void syncAllManager();

    /**
     * 根据条件查询集合
     *
     * @param dto 条件
     * @return 主管信息集合
     */
    List<PtManagementAll> selectList(PtManagementAllDTO dto);

    /**
     * 根据主管类别、兼岗类型、正副职查询集合
     *
     * @param manageTypes 主管类别
     * @param isMainPost  是否主兼岗
     * @param isMainDuty  是否正副职
     * @return 主管信息集合
     */
    List<PtDept> selectListByPostTypeCodes(List<String> manageTypes, Boolean isMainPost, Boolean isMainDuty);
}
